This invention relates to a storage system for use in a computer system or the like, and more specifically, to file access control in a file system that has plural storage devices or plural subordinate file systems.
A file system that manages many storage devices has to be high in parallelism of the storage devices and performance of the individual storage devices both in order to push its overall input/output performance to the highest possible level. For instance, in the case of accessing a huge single file, making use of the parallelism of storage devices by dividing the file into blocks, which are allocated to different storage devices to be accessed in parallel, improves the file access performance compared to allocating the whole file to one storage device for access.
However, when the number of storage devices managed by a file system is very large, allocating one file to too many storage devices lowers the performance efficiency of the individual storage devices. This is because, while allocating portions of one file to the same storage device activates the read-ahead/collective write mechanism of the storage devices and thereby improves the performance, dividing a file into so many blocks makes the number of blocks allocated per storage device too small for the read-ahead/collective write mechanism of the storage devices to function fully. In addition, when plural files are accessed simultaneously, blocks of different files are allocated to the same storage device and this causes a seek operation in the storage device, with the result that the performance efficiency of the storage device is lowered even more.
Methods proposed to address the issue of balancing parallelism and performance efficiency include one in which the stripe range of one file is fixed and limited on a file-system basis and one which increases the file access speed by allowing a user to specify, in detail, information on file-to-disk allocation. The latter method allows a user to designate, for each file, disks across which the file is striped, and achieves high-speed access by dividing each file into blocks of the size optimum to the file (see JP 11-15720 A, for example).
Another method proposed allows a file system to choose a file allocation method on a static basis. According to this method, a storage device to which a block size suited to the file access size is set is selected, to thereby reduce the unused storage area and at the same time achieve high-speed access (see JP 2002-132548 A, for example).